Сообщения Windows
Сообщения от мыши в клиентской области окна
WM_LBUTTONDBLCLK | 0x0203 | двойное нажатие левой кнопки |
WM_LBUTTONDOWN | 0x0201 | нажатие левой кнопки |
WM_LBUTTONUP | 0x0202 | отпускание левой кнопки |
WM_MBUTTONDBLCLK | 0x0209 | двойное нажатие средней кнопки |
WM_MBUTTONDOWN | 0x0207 | нажатие средней кнопки |
WM_MBUTTONUP | 0x0208 | отпускание средней кнопки |
WM_RBUTTONDBLCLK | 0x0206 | двойное нажатие правой кнопки |
WM_RBUTTONDOWN | 0x0204 | нажатие правой кнопки |
WM_RBUTTONUP | 0x0205 | отпускание правой кнопки |
WM_MOUSEFIRST | 0x0200 | первый клик мыши |
WM_MOUSEHOVER | 0x02A1 | при входе курсора в прямоугольник клиентской части окна |
WM_MOUSELEAVE | 0x02A3 | при выходе курсора из прямоугольника клиентской части окна |
WM_MOUSELAST(2K,XP,2k3) | 0x020D | последнее сообщение мыши |
WM_MOUSELAST(95) | 0x0209 | последнее сообщение мыши |
WM_MOUSELAST(NT4,98) | 0x020A | последнее сообщение мыши |
WM_MOUSEMOVE | 0x0200 | позиция курсора мыши была изменена, возвращает координаты |
WM_MOUSEWHEEL | 0x020A | вращение колёсика мыши (в возвр. параметрах вверх / вниз) |
Сообщения от мыши в неклиентской области окна
WM_NCLBUTTONDBLCLK | 0x00A3 | двойное нажатие левой кнопки |
WM_NCLBUTTONDOWN | 0x00A1 | нажатие левой кнопки |
WM_NCLBUTTONUP | 0x00A2 | отпускание левой кнопки |
WM_NCMBUTTONDBLCLK | 0x00A9 | двойное нажатие средней кнопки |
WM_NCMBUTTONDOWN | 0x00A7 | нажатие средней кнопки |
WM_NCMBUTTONUP | 0x00A8 | отпускание средней кнопки |
WM_NCRBUTTONDBLCLK | 0x00A6 | двойное нажатие правой кнопки |
WM_NCRBUTTONDOWN | 0x00A4 | нажатие правой кнопки |
WM_NCRBUTTONUP | 0x00A5 | отпускание правой кнопки |
WM_NCMOUSEHOVER | 0x02A0 | при входе курсора в неклиентскую часть окна |
WM_NCMOUSELEAVE | 0x02A2 | срабатывает в момент пересечения границ клиенской области окна, и не реагирует на скольжение по границе. При выходе курсора из неклиентской части окна |
WM_NCMOUSEMOVE | 0x00A0 | выполняется при пересечении границ окна и скольжении по границе. Позиция курсора мыши была изменена |
WM_NCPAINT | 0x0085 | срабатывает при освобождении площадью другого окна поверх текущего (перерисовка) |
Сообщения от клавиатуры
WM_CHAR | 0x0102 | ввод символа |
WM_DEADCHAR | 0x0103 | диакритический знак (умляут, ударение и т. д.) |
WM_SYSCHAR | 0x0106 | ввод специального символа |
WM_SYSDEADCHAR | 0x0107 | специальный диакритический знак |
WM_KEYDOWN | 0x0100 | была нажата клавиша клавиатуры |
WM_KEYFIRST | 0x0100 | первая нажатая клавиша |
WM_KEYLAST | 0x0108 | последняя нажатая клавиша |
WM_KEYLAST | 0x0109 | последняя нажатая клавиша |
WM_KEYUP | 0x0101 | отпущена клавиша клавиатуры |
Оконные сообщения: уведомление
WM_ACTIVATE | 0x0006 | при смене активности окна |
WM_ACTIVATEAPP | 0x001C | при смене активности приложения |
WM_CREATE | 0x0001 | при создании окна Gui |
WM_DESTROY | 0x0002 | при удалении окна |
WM_ENABLE | 0x000A | срабатывает в момент изменения доступа к окну |
WM_KILLFOCUS | 0x0008 | окно потеряло фокус ввода от клавиатуры |
WM_MOUSEACTIVATE | 0x0021 | окно станет активным после нажатия кнопки мыши |
WM_MOVE | 0x0003 | срабатывает только в момент перемещения окна |
WM_MOVING | 0x0216 | срабатывает только в момент перемещения окна и отпуска |
WM_SIZE | 0x0005 | срабатывает в момент изменения размеров окна |
WM_SIZING | 0x0214 | срабатывает в момент изменения размеров окна и отпуска |
Оконные сообщения; требование действия
WM_CLOSE | 0x0010 | уведомляет окно, что оно будет закpыто |
WM_ERASEBKGND | 0x0014 | удалить фон |
WM_ICONERASEBKGND | 0x0027 | удалить фон окна, показываемого в виде пиктограммы |
WM_NCACTIVATE | 0x0086 | Изменить заголовок окна для показа активного состояния |
WM_NCCREATE | 0x0081 | Создать неклиентскую область окна |
WM_NCDESTROY | 0x0082 | Уничтожить неклиентскую область окна |
WM_PAINT | 0x000F | срабатывает при освобождении площадью другого окна поверх текущего (перерисовка) |
WM_PAINTICON | 0x0026 | Перерисовать клиентскую область окна, показываемого в виде пиктограммы |
WM_SETREDRAW | 0x000B | Запретить перерисовку окна |
WM_SETTEXT | 0x000C | для устсновки или смены текста у окна |
Оконные сообщения: запросы
WM_GETMINMAXINFO | 0x0024 | срабатывает во время перемещения окна, сворачивания и изменения размеров. Позволяет установить пределы увеличения и уменьшения окна как по горизонтали так и по вертикали индивидуально. А также позицию и размеры развёрнутого состояния. Установочные параметры можно игнорировать указав только необходимые параметры. |
WM_GETTEXT | 0x000D | Запрос текста заголовка окна, а для окон, не имеющих заголовка (например, для кнопок) — текста, размещенного в окне |
WM_GETTEXTLENGTH | 0x000E | Возвpащает длину в байтах текста окна |
WM_NCCALCSIZE | 0x0083 | Запрос размеров клиентской области |
WM_QUERYNEWPALETTE | 0x030F | Запрос существования новой палитры |
WM_QUERYOPEN | 0x0013 | Запрос возможности открытия окна, отображаемого в виде пиктограммы |
Сообщения от меню
WM_COMMAND | 0x0111 | Был выбран пункт меню. Клик на элементе интерфейса |
WM_INITMENU | 0x0116 | уведомление о возможности изменить меню перед его активизацией |
WM_INITMENUPOPUP | 0x0117 | Уведомление о возможности изменить пункты всплывающего меню перед его отображением на экране |
WM_MENUCHAR | 0x0120 | Для выбора меню использована мнемоническая клавиша. Пользователь просматривает меню |
Сообщения многодокументного интерфейса (MDI)
WM_CHILDACTIVATE | 0x0022 | уведомляет pодительское окно, что одно из его дочеpних окон было пеpемещено с помощью функции SetWindowPos. Объявляет порождающему окну об активизации дочернего окна |
WM_MDIACTIVATE | 0x0222 | Объявляет дочернему окну MDI, что оно получает или теряет активизацию |
WM_MDICASCADE | 0x0227 | Требование оформить дочерние окна MDI в каскадной (ступенчатой) форме |
WM_MDICREATE | 0x0220 | создает дочеpнее окно интеpфейса MDI для окна пользователя MDI |
WM_MDIDESTROY | 0x0221 | текст |
WM_MDIGETACTIVE | 0x0229 | Запрос окна клиента MDI о текущем активном дочернем окне |
WM_MDIICONARRANGE | 0x0228 | Требование упорядочить расположение дочерних окон MDI, отображаемых в виде пиктограмм |
WM_MDIMAXIMIZE | 0x0225 | Требование максимизировать дочерние окна MDI |
WM_MDINEXT | 0x0224 | Требование активизировать следующее дочернее окно MDI |
WM_MDIREFRESHMENU | 0x0234 | текст |
WM_MDIRESTORE | 0x0223 | Требование восстановить дочернее окно MDI в его предыдущем состоянии |
WM_MDISETMENU | 0x0230 | Настраивает меню для текущего дочернего окна MDI |
WM_MDITILE | 0x0226 | Требование оформить дочерние окна MDI в форме черепичного (без перекрытий) расположения |
Сообщения с уведомлением об изменениях системных ресурсов
WM_COMPACTING | 0x0041 | Недостаточно системной памяти |
WM_DEVMODECHANGE | 0x001B | Изменилась настройка принтера |
WM_FONTCHANGE | 0x001D | Изменились установленные в системе шрифты |
WM_PALETTEISCHANGING | 0x0310 | Палитра аппаратных цветов изменена |
WM_SPOOLERSTATUS | 0x002A | Задание было удалено из очереди буфера печати |
WM_SYSCOLORCHANGE | 0x0015 | Один или более системных цветов изменены |
WM_TIMECHANGE | 0x001E | срабатывает в момент изменения системной даты, времени |
Сообщения от буфера обмена
WM_ASKCBFORMATNAME | 0x030C | Запрашивает имя формата буфера обмена |
WM_CHANGECBCHAIN | 0x030D | Уведомление об изменении цепочки просмотра |
WM_DESTROYCLIPBOARD | 0x0307 | Содержимое буфера обмена уничтожено |
WM_DRAWCLIPBOARD | 0x0308 | Содержимое буфера обмена изменено |
WM_HSCROLLCLIPBOARD | 0x030E | Горизонтальная прокрутка буфера обмена |
WM_PAINTCLIPBOARD | 0x0309 | Запрашивает рисование буфера обмена |
WM_RENDERALLFORMATS | 0x0306 | Запрашивает данные для всех ранее объявленных форматов буфера обмена |
WM_RENDERFORMAT | 0x0305 | Запрашивает данные для ранее объявленного формата буфера обмена |
WM_SIZECLIPBOARD | 0x030B | Размер буфера обмена изменен |
Прочее
WM_AFXFIRST | 0x0360 | текст |
WM_AFXLAST | 0x037F | текст |
WM_APP | 0x8000 | текст |
WM_APPCOMMAND | 0x0319 | текст |
WM_CANCELJOURNAL | 0x004B | текст |
WM_CANCELMODE | 0x001F | требование системы отменить режим, например, захват мыши |
WM_CAPTURECHANGED | 0x0215 | при изменении размеров окна, перемещении и отпуске заголовка |
WM_CHANGEUISTATE | 0x0127 | текст |
WM_CHARTOITEM | 0x002F | что блок списка должен делать в ответ на сообщение wm_Char |
WM_CLEAR | 0x0303 | удаляет текущий выбоp, сделанный в окне. |
WM_COMMNOTIFY | 0x0044 | текст |
WM_COMPAREITEM | 0x0039 | посылается родителю с запросом на сравнение двух элементов для сортировки |
WM_CONTEXTMENU | 0x007B | при вызове контекстного меню правой кнопкой мыши |
WM_COPY | 0x0301 | при отправке в буфер обмена в формате CF_TEXT |
WM_COPYDATA | 0x004A | текст |
WM_CTLCOLOR | 0x0019 | управляющий запрос на установку цветов |
WM_CTLCOLORBTN | 0x0135 | при наведении на кнопку, пересечения её границ |
WM_CTLCOLORDLG | 0x0136 | текст |
WM_CTLCOLOREDIT | 0x0133 | наведения курсора на EDIT, пересечении границ |
WM_CTLCOLORLISTBOX | 0x0134 | текст |
WM_CTLCOLORMSGBOX | 0x0132 | текст |
WM_CTLCOLORSCROLLBAR | 0x0137 | текст |
WM_CTLCOLORSTATIC | 0x0138 | текст |
WM_CUT | 0x0300 | вырезать в буфер обмена |
WM_DELETEITEM | 0x002D | уведомление, направляемое элементам управления Listbox и Combobox.o том, что удален элемент |
WM_DEVICECHANGE | 0x0219 | срабатывает во время изменения железа в системе, например подключенная флешка |
WM_DISPLAYCHANGE | 0x007E | срабатывает в момент изменения разрешения экрана |
WM_DRAWITEM | 0x002B | Запрос родителю пользовательских элементов управления и меню на рисование (пример в GUIRegisterMsg) |
WM_DROPFILES | 0x0233 | срабатывает в момент перетягивания файла в окно |
WM_ENDSESSION | 0x0016 | Уведомление о результатах запроса на завершение работы системы |
WM_ENTERIDLE | 0x0121 | Сообщает, что система находится в режиме ожидания |
WM_ENTERMENULOOP | 0x0211 | срабатывает в момент клика главного меню окна (но не пунктов в меню) |
WM_ENTERSIZEMOVE | 0x0231 | в НАЧАЛЕ изменения размеров или перемещении окна |
WM_EXITMENULOOP | 0x0212 | текст |
WM_EXITSIZEMOVE | 0x0232 | в КОНЦЕ изменения размеров или перемещении окна |
WM_GETDLGCODE | 0x0087 | Запрос оконной процедуре, какие типы сообщений будут ею впоследствии обрабатываться |
WM_GETFONT | 0x0031 | Возвpащает текущий шpифт блока диалога |
WM_GETHOTKEY | 0x0033 | текст |
WM_GETICON | 0x007F | текст |
WM_GETOBJECT | 0x003D | текст |
WM_HANDHELDFIRST | 0x0358 | текст |
WM_HANDHELDLAST | 0x035F | текст |
WM_HELP | 0x0053 | WM_HELP указывает, что нажата клавиша F1 |
WM_HOTKEY | 0x0312 | Срабатывает при вызове зарегистрированных в текущем приложении горячих клавиш |
WM_HSCROLL | 0x0114 | нажата горизонтальная линейка прокрутки |
WM_VSCROLL | 0x0115 | нажата вертикальная линейка прокрутки |
WM_IME_CHAR | 0x0286 | текст |
WM_IME_COMPOSITION | 0x010F | текст |
WM_IME_COMPOSITIONFULL | 0x0284 | текст |
WM_IME_CONTROL | 0x0283 | текст |
WM_IME_ENDCOMPOSITION | 0x010E | текст |
WM_IME_KEYDOWN | 0x0290 | текст |
WM_IME_KEYLAST | 0x010F | текст |
WM_IME_KEYUP | 0x0291 | текст |
WM_IME_NOTIFY | 0x0282 | текст |
WM_IME_REQUEST | 0x0288 | текст |
WM_IME_SELECT | 0x0285 | текст |
WM_IME_SETCONTEXT | 0x0281 | текст |
WM_IME_STARTCOMPOSITION | 0x010D | текст |
WM_INITDIALOG | 0x0110 | Запрос на инициализацию диалогового окна |
WM_INPUT | 0x00FF | текст |
WM_INPUTLANGCHANGE | 0x0051 | текст |
WM_INPUTLANGCHANGEREQUEST | 0x0050 | текст |
WM_MEASUREITEM | 0x002C | текст |
WM_MENUCOMMAND | 0x0126 | текст |
WM_MENUDRAG | 0x0123 | текст |
WM_MENUGETOBJECT | 0x0124 | текст |
WM_MENURBUTTONUP | 0x0122 | текст |
WM_MENUSELECT | 0x011F | срабатывает в момент выбора главного меню и его пунктов |
WM_NCHITTEST | 0x0084 | не выполняется, когда окно неактивно, но срабатывает при скольжении по неактивному окну. Передача в окно текущего положения указателя мыши |
WM_NCXBUTTONDBLCLK | 0x00AD | текст |
WM_NCXBUTTONDOWN | 0x00AB | текст |
WM_NCXBUTTONUP | 0x00AC | текст |
WM_NEXTDLGCTL | 0x0028 | текст |
WM_NEXTMENU | 0x0213 | текст |
WM_NOTIFY | 0x004E | работает с ListView, Button |
WM_NOTIFYFORMAT | 0x0055 | текст |
WM_NULL | 0x0000 | текст |
WM_PALETTECHANGED | 0x0311 | текст |
WM_PARENTNOTIFY | 0x0210 | текст |
WM_PASTE | 0x0302 | вставка из буфера обмена |
WM_PENWINFIRST | 0x0380 | текст |
WM_PENWINLAST | 0x038F | текст |
WM_POWER | 0x0048 | текст |
WM_POWERBROADCAST | 0x0218 | текст |
WM_PRINT | 0x0317 | текст |
WM_PRINTCLIENT | 0x0318 | текст |
WM_QUERYDRAGICON | 0x0037 | текст |
WM_QUERYENDSESSION | 0x0011 | Запрос готовности приложения к завершению работы всей системы |
WM_QUERYUISTATE | 0x0129 | текст |
WM_QUEUESYNC | 0x0023 | текст |
WM_QUIT | 0x0012 | Требование на завершение приложения |
WM_SETCURSOR | 0x0020 | Уведомление окну при перемещении мыши с возможностью изменить |
WM_SETFOCUS | 0x0007 | текст |
WM_SETFONT | 0x0030 | Запрос родителю элемента управления на обеспечение его размеров при прорисовке |
WM_SETHOTKEY | 0x0032 | текст |
WM_SETICON | 0x0080 | текст |
WM_SETTINGCHANGE | 0x001A | текст |
WM_SHOWWINDOW | 0x0018 | срабатывает в момент отображения окна |
WM_STYLECHANGED | 0x007D | срабатывает в момент изменения стиля окна |
WM_STYLECHANGING | 0x007C | срабатывает в момент изменения стиля окна |
WM_SYNCPAINT | 0x0088 | текст |
WM_SYSCOMMAND | 0x0112 | при клике на заголовке окна или изменении размеров окна |
WM_SYSKEYDOWN | 0x0104 | текст |
WM_SYSKEYUP | 0x0105 | текст |
WM_TABLET_FIRST | 0x02C0 | текст |
WM_TABLET_LAST | 0x02DF | текст |
WM_TCARD | 0x0052 | текст |
WM_THEMECHANGED | 0x031A | текст |
WM_TIMER | 0x0113 | запускает счётчик времени, который выполняет событие через указанный интервал многократно, пока не будет остановлен |
WM_UNDO | 0x0304 | текст |
WM_UNICHAR | 0x0109 | текст |
WM_UNINITMENUPOPUP | 0x0125 | текст |
WM_UPDATEUISTATE | 0x0128 | текст |
WM_USER | 0x0400 | текст |
WM_USERCHANGED | 0x0054 | текст |
WM_VKEYTOITEM | 0x002E | текст |
WM_VSCROLLCLIPBOARD | 0x030A | текст |
WM_WINDOWPOSCHANGED | 0x0047 | срабатывает в момент перемещения окна окна или изменения размеров |
WM_WINDOWPOSCHANGING | 0x0046 | срабатывает в момент изменения размеров окна, перемещении, клике на заголовке |
WM_WININICHANGE | 0x001A | текст |
WM_WTSSESSION_CHANGE | 0x02B1 | текст |
WM_XBUTTONDBLCLK | 0x020D | текст |
WM_XBUTTONDOWN | 0x020B | текст |
WM_XBUTTONUP | 0x020C | текст |
Ссылки